/*
 * eiam-console - Employee Identity and Access Management
 * Copyright © 2022-Present Jinan Yuanchuang Network Technology Co., Ltd. (support@topiam.cn)
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
// src/access.ts
export default function (initialState: { currentUser: API.CurrentUser }) {
  if(!initialState) return false
  const { currentUser } = initialState;
  const access: string | string[] = currentUser ? currentUser.access : [];
  /**
   * account:房态，
   * CheckIn：入住
   * CardIssuance:制卡
   * DoorOpening:记录
   * Configuration:监控
   * FixLock:安装
   * setting:设置
   */

  // ant-pro-top-nav-header-menu css-dev-only-do-not-override-1lx4oux
  if (currentUser && access) {
    return {
      RoomState: access.includes('RoomState'),
      CheckIn: access.includes('CheckIn'),
      CardIssuance: access.includes('CardIssuance'),
      DoorOpening: access.includes('DoorOpening'),
      Configuration: access.includes('Monitor'),
      FixLock: access.includes('Install'),
      setting: access.includes('Setting'),
    };
  }
  return;

  // const { currentUser } = initialState;
  // function actionFilter(action: string | string[]) {
  //   const actions: string[] = (currentUser && currentUser.access) || [];
  //   if (typeof action === 'string') {
  //     return actions?.includes(action);
  //   }
  //   return actions
  //     .map((i) => {
  //       return action?.includes(i);
  //     })
  //     .includes(true);
  // }
  // return {
  //   /* 操作项过滤器 */
  //   actionFilter: actionFilter,
  // };
}
